package com.zuo.mall.service;

import com.zuo.mall.entity.UmsAdmin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zuo.mall.entity.UmsResource;
import com.zuo.mall.entity.UmsRole;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.List;

/**
 * <p>
 * 后台用户表 服务类
 * </p>
 *
 * @author zuo
 * @since 2023-10-21
 */
public interface UmsAdminService extends IService<UmsAdmin> {

    /**
     * 根据用户名获取后台管理与
     */
    UmsAdmin getAdminByUsername(String username);

    /**
     * 获取指定用户的可访问资源
     * @param id
     * @return
     */
    List<UmsResource> getResourceList(Long id);


    /**
     * 获取用户信息 包含用户resourceList
     * @param username
     * @return
     */
    UserDetails loadUserByUsername(String username);

    UmsAdmin getItem(Long adminId);

    /**
     * 登录功能
     * @param username 用户名
     * @param password 密码
     * @return JWT生成的token
     */
    String login(String username, String password);

    /**
     * 获取用户对应的角色
     */
    List<UmsRole> getRoleList(Long adminId);
}
